// var n;
// exports.PlatformMgr = void 0;
// var $singletonManager = require("./SingletonManager");
// var r = [
//     cc.sys.WECHAT_GAME,
//     cc.sys.ALIPAY_GAME,
//     cc.sys.QTT_GAME,
//     cc.sys.BYTEDANCE_GAME,
//     cc.sys.HUAWEI_GAME,
//     cc.sys.OPPO_GAME,
//     cc.sys.VIVO_GAME,
//     cc.sys.XIAOMI_GAME,
//     cc.sys.BAIDU_GAME,
//     cc.sys.JKW_GAME,
//     cc.sys.LINKSURE
// ];
// var c = (function (e) {
//     function t() {
//         return (null !== e && e.apply(this, arguments)) || this;
//     }
//     __extends(t, e);
//     t.prototype.isMiniGame = function () {
//         return r.includes(cc.sys.platform);
//     };
//     t.prototype.isWxGame = function () {
//         return cc.sys.platform === cc.sys.WECHAT_GAME;
//     };
//     t.prototype.isDyGame = function () {
//         return cc.sys.platform === cc.sys.BYTEDANCE_GAME;
//     };
//     t.prototype.isBrowser = function () {
//         return cc.sys.isBrowser;
//     };
//     return t;
// })($singletonManager.SingletonMgr);
// exports.PlatformMgr = c.getInstance();


import { SingletonBase } from './SingletonManager';

const miniGamePlatforms: number[] = [
    cc.sys.WECHAT_GAME,
    cc.sys.ALIPAY_GAME,
    cc.sys.QTT_GAME,
    cc.sys.BYTEDANCE_GAME,
    cc.sys.HUAWEI_GAME,
    cc.sys.OPPO_GAME,
    cc.sys.VIVO_GAME,
    cc.sys.XIAOMI_GAME,
    cc.sys.BAIDU_GAME,
    cc.sys.JKW_GAME,
    cc.sys.LINKSURE
];

/**
 * 平台管理类
 * 建议名称：PlatformManager
 */
class PlatformManager extends SingletonBase {
    /**
     * 判断当前平台是否为小游戏平台
     * 建议方法名：isMiniGamePlatform
     * @returns {boolean} 如果是小游戏平台则返回 true，否则返回 false
     */
    public isMiniGame(): boolean {
        return miniGamePlatforms.includes(cc.sys.platform);
    }

    /**
     * 判断当前平台是否为微信小游戏平台
     * 建议方法名：isWeChatGamePlatform
     * @returns {boolean} 如果是微信小游戏平台则返回 true，否则返回 false
     */
    public isWxGame(): boolean {
        return cc.sys.platform === cc.sys.WECHAT_GAME;
    }

    /**
     * 判断当前平台是否为字节跳动小游戏平台
     * 建议方法名：isByteDanceGamePlatform
     * @returns {boolean} 如果是字节跳动小游戏平台则返回 true，否则返回 false
     */
    public isDyGame(): boolean {
        return cc.sys.platform === cc.sys.BYTEDANCE_GAME;
    }

    /**
     * 判断当前平台是否为浏览器
     * 建议方法名：isBrowserPlatform
     * @returns {boolean} 如果是浏览器则返回 true，否则返回 false
     */
    public isBrowser(): boolean {
        return cc.sys.isBrowser;
    }
}

export const PlatformMgr = PlatformManager.getInstance();